SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[SP_TXMVTO_INTE_I01]        
/*---------------------------------------------------------*/        
/*---- Empresa     : OFISIS S.A    ----*/        
/*---- Cliente     : OFISIS S.A    ----*/        
/*---- Sistema     : Contabilidad   ----*/        
/*---- M¢dulo     : Empresa       ----*/        
/*---- Programa     : Interfase intermedia        ----*/        
/*---- Script     : TWMVTO_INTE.SQL   ----*/        
/*---- Nombre SP    : SP_TXMVTO_INTE_I01   ----*/        
/*---- Desarrollado por    : MLU                         ----*/        
/*---- Fecha Creaci¢n    : 21/08/1999    ----*/        
/*---- Base de Datos    : MS SQL Server          ----*/        
/*---- Versi¢n     : 7.0       ----*/        
/*---- Invoca a SP     :     ----*/        
/*---------------------------------------------------------*/        
/*---- Modificado 1 por    : Daniel Chiang Bon           ----*/        
/*---- Fecha Modificaci¢n  : 17 marzo 2000   ----*/        
/*---- Detalle Modificaci¢n: Agregar columnas de datos orìgenes ----*/        
/*--------------------------------------------------------------*/        
/*---- Modificado 2 por    : Franco Gamboni Koifman         ----*/        
/*---- Fecha Modificaci¢n  : 27 Noviembre 2001        ----*/        
/*---- Detalle Modificaci¢n: Validaciones de cuentas       ----*/        
/*--------------------------------------------------------------*/        
/*--------------------------------------------------------------*/        
/*---- Modificado 2 por    : Jose Alberto Guevara         ----*/        
/*---- Fecha Modificaci¢n  : 03 Marzo 2003        ----*/        
/*---- Detalle Modificaci¢n: Interfac en Linea       ----*/        
/*--------------------------------------------------------------*/        
/*--------------------------------------------------------------*/        
/*---- Modificado 3 por    : pdgv        ----*/        
/*---- Fecha Modificaci¢n  : 28/05/2009        ----*/        
/*---- Detalle Modificaci¢n: optimizacion - se quito el delete e insert en txmvto_inte     ----*/        
/*--------------------------------------------------------------*/        
/*--------------------------------------------------------------*/        
/* drop proc SP_TXMVTO_INTE_I01      ----*/        
/* grant Execute on SP_TXMVTO_INTE_I01 to PUBLIC   ----*/        
/* SP_TXMVTO_INTE_I01 '01', '00200036' ,'001','002', 2010,2        ----*/        
/*--------------------------------------------------------------*/        
        
@ISCO_EMPR           TD_VC_002,        
@ISNU_ASTO           TD_VC_020,        
@ISCO_UNID_CNTB      TD_VC_003,        
@ISCO_OPRC_CNTB      TD_VC_003,        
@INNU_ANNO           INTEGER,        
@INNU_MESE           TD_IN_002_MESE        
        
As        
Declare        
-- Declaración Variables Cursores        
@CSCO_EMPR         TD_VC_002,        
@CNNU_CNTB_EMPR    TD_IN_001,        
@CSCO_UNID_CNTB    TD_VC_003,        
@CNNU_ANNO         INTEGER,        
@CNNU_MESE         TD_IN_002_MESE,        
@CSCO_OPRC_CNTB    TD_VC_003,        
@CSNU_ASTO         TD_VC_010,        
@CNNU_SECU         TD_IN_001,        
@CDFE_ASTO_CNTB    TD_DT_001,        
@CSCO_CNTA_EMPR    TD_VC_020,        
@CSTI_AUXI_EMPR    TD_VC_010,        
@CSCO_AUXI_EMPR    TD_VC_020,        
@CSTI_DOCU         TD_VC_003,        
@CSNU_DOCU         TD_VC_020,        
@CDFE_DOCU         TD_DT_001,        
@CDFE_DOCU_VENC    TD_DT_001,        
@CSTI_CAMB         TD_VC_003,        
@CSCO_MONE         TD_VC_003,        
@CNFA_CAMB         TD_NU_009_004,        
@CNFA_CAMB_DIAR    TD_NU_009_004,        
@CSTI_OPER         TD_VC_003,        
@CNIM_MVTO_ORIG    TD_NU_016_004,        
@CNIM_MVTO_CNTB    TD_NU_016_004,        
@CSDE_GLOS         TD_VC_100,        
@CSNO_GIRA         TD_VC_100,        
@CSCO_ORDE_SERV    TD_VC_050,        
@CSSI_MVTO_CNTB    TD_VC_003,        
@CSSI_MVTO_DOCU    TD_VC_001,        
@CSCO_USUA_MODI    TD_VC_008,        
@CDFE_USUA_MODI    TD_DT_001,        
@CNCO_TABL_ORIG    TD_IN_001,        
@CSCO_CLAV_TAOR    TD_VC_050,        
@CSTI_DOCU_REFE    TD_VC_003,        
@CSNU_DOCU_REFE    TD_VC_020,        
@CDFE_DOCU_REFE    TD_DT_001,        
-- Otras Variables        
@VSNU_ASTO         TD_VC_010,        
@VSNU_ASTO_0001    TD_VC_010,        
@VNNU_ASTO         TD_IN_001,        
@VNNU_SECU         TD_IN_001,        
-- Para Validaciones        
@VSCO_EMPR         TD_VC_002,        
@VNNU_CNTB_EMPR    TD_IN_001,        
@VSCO_UNID_CNTB    TD_VC_003,        
@VSCO_OPRC_CNTB    TD_VC_003,        
@VNNU_ANNO         INTEGER,        
@VNNU_MESE         TD_IN_002_MESE,        
@VSDE_ERRO         TD_VC_080,        
@VSCO_MONE         TD_VC_003,        
@VSCO_ORDE_SERV    TD_VC_020,        
@VSCO_MONE_0001    TD_VC_003,        
@VSCO_CNTA_EMPR    TD_VC_020,        
@VSTI_AUXI_EMPR    TD_VC_001,        
@VSCO_AUXI_EMPR    TD_VC_020,        
@VSTI_DOCU         TD_VC_003,        
--        
@VSST_AUXI_EMPR    TD_VC_001,        
@VSST_DOCU_CNTB    TD_VC_001,        
@VSTI_AUXI_DOCU    TD_VC_001,        
@VSST_MONE         TD_VC_001,        
@VNNU_CONT         TD_IN_001,        
@VSCO_MONE_CNTA    TD_VC_003,        
@VSST_ORDE_SERV    TD_VC_001,        
@CSCO_TIPO_OPER    TD_VC_003        
        
Begin        
        
        
 UPDATE TTINTE_CNDE        
 SET TI_AUXI_EMPR = NULL, CO_AUXI_EMPR = NULL        
 WHERE TI_AUXI_EMPR = ' '         
  AND CO_EMPR = @ISCO_EMPR        
  AND NU_ASTO = @ISNU_ASTO        
  AND NU_CNTB_EMPR = 1        
  AND CO_UNID_CNTB = @ISCO_UNID_CNTB        
  AND CO_OPRC_CNTB = @ISCO_OPRC_CNTB        
  AND NU_ANNO      = @INNU_ANNO        
  AND NU_MESE      = @INNU_MESE        
  AND NU_ASTO      = @ISNU_ASTO        
         
         
 UPDATE TTINTE_CNDE        
 SET FE_DOCU = NULL, FE_DOCU_VENC = NULL        
 WHERE TI_DOCU IS NULL AND         
 NU_DOCU IS NULL         
  AND NU_ASTO = @ISNU_ASTO        
  AND CO_EMPR = @ISCO_EMPR        
  AND NU_ASTO = @ISNU_ASTO        
  AND NU_CNTB_EMPR = 1        
  AND CO_UNID_CNTB = @ISCO_UNID_CNTB        
  AND CO_OPRC_CNTB = @ISCO_OPRC_CNTB        
  AND NU_ANNO      = @INNU_ANNO        
  AND NU_MESE      = @INNU_MESE        
         
         
   -- Declaración Cursor        
   Declare CU_TXMVTO_INTE_I01_1 Cursor For        
   Select CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, NU_ANNO, NU_MESE,        
          CO_OPRC_CNTB, NU_ASTO, NU_SECU, FE_ASTO_CNTB,        
          CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU, NU_DOCU,        
          FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB, FA_CAMB_DIAR,        
          TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS,        
          TI_DOCU_REFE, NU_DOCU_REFE, FE_DOCU_REFE,        
          NO_GIRA, CO_ORDE_SERV, SI_MVTO_CNTB, CO_USUA_MODI, FE_USUA_MODI,         
  CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER        
   From   TTINTE_CNDE        
   Where  CO_EMPR = @ISCO_EMPR        
   AND NU_ASTO = @ISNU_ASTO        
   AND NU_CNTB_EMPR = 1        
   AND CO_UNID_CNTB = @ISCO_UNID_CNTB        
   AND CO_OPRC_CNTB = @ISCO_OPRC_CNTB        
   AND NU_ANNO      = @INNU_ANNO        
   AND NU_MESE      = @INNU_MESE        
   Order  By CO_EMPR, NU_CNTB_EMPR, NU_ANNO, NU_MESE, CO_UNID_CNTB,  CO_OPRC_CNTB, NU_ASTO, NU_SECU        
         
   Open CU_TXMVTO_INTE_I01_1        
   Fetch CU_TXMVTO_INTE_I01_1 Into        
         @CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB,        
         @CNNU_ANNO, @CNNU_MESE, @CSCO_OPRC_CNTB, @CSNU_ASTO,@CNNU_SECU,        
         @CDFE_ASTO_CNTB, @CSCO_CNTA_EMPR, @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,        
         @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU,        
         @CDFE_DOCU_VENC, @CSTI_CAMB, @CSCO_MONE, @CNFA_CAMB,        
         @CNFA_CAMB_DIAR, @CSTI_OPER, @CNIM_MVTO_ORIG,        
         @CNIM_MVTO_CNTB, @CSDE_GLOS,        
         @CSTI_DOCU_REFE, @CSNU_DOCU_REFE, @CDFE_DOCU_REFE, @CSNO_GIRA,        
         @CSCO_ORDE_SERV, @CSSI_MVTO_CNTB,         
         @CSCO_USUA_MODI, @CDFE_USUA_MODI, @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR,        
         @CSCO_TIPO_OPER        
         
   -- Setea Valor de Contador        
   Select @VNNU_CONT = 0        
         
   -- Elimina Datos de Tablas Intermedias        
   Delete From TTERRO_INTE        
   Where CO_EMPR = @CSCO_EMPR        
  AND NU_ASTO = @ISNU_ASTO     
     
 --    And NU_PROC = @INNU_PROC        
--david      
  /*      
   Delete From OFICONT..TXMVTO_INTE        
   Where  CO_EMPR = @CSCO_EMPR        
  AND NU_ASTO = @ISNU_ASTO        
*/      
 --   And   NU_PROC = @INNU_PROC        
         
   Select @VSNU_ASTO = '@@@'               
   Select @VNNU_SECU = 0        
         
   While @@fetch_status = 0        
   Begin        
  Select @VNNU_CONT = 0        
          
  -- Saca Moneda de Contabilidad        
  Select @VSCO_MONE   = CO_MONE        
  From   OFICONT..TTCNTB_EMPR        
  Where  CO_EMPR      = @ISCO_EMPR        
  And    NU_CNTB_EMPR = @CNNU_CNTB_EMPR        
          
  /* FACTOR CAMBIO DIARIO */        
          
  If @CNFA_CAMB_DIAR Is Null        
  Begin        
-- Inserta Error        
   Select @VNNU_SECU = @VNNU_SECU + 1        
   Select @VNNU_CONT = @VNNU_CONT + 1        
   Select @VSDE_ERRO = ' FACTOR CAMBIO DIARIO NO PUEDE SER NULO'        
   Insert TTERRO_INTE (        
   CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
   NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,        
   CO_AUXI_EMPR,TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,        
   FA_CAMB_DIAR,TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,        
   NU_DOCU_REFE,FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV,        
   SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG,        
   ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, DE_ERRO,        
   CO_USUA_MODI,FE_USUA_MODI, CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER )        
   Values (        
   @CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,        
   @CNNU_ANNO, @CNNU_MESE,@CSNU_ASTO, @VNNU_SECU, @CDFE_ASTO_CNTB,         
   @CSCO_CNTA_EMPR,@CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,@CSTI_DOCU,         
   @CSNU_DOCU, @CDFE_DOCU, @CDFE_DOCU_VENC, @CSTI_CAMB,@CSCO_MONE,         
   @CNFA_CAMB, @CNFA_CAMB_DIAR,@CSTI_OPER, @CNIM_MVTO_ORIG,         
   @CNIM_MVTO_CNTB, @CSDE_GLOS,@CSTI_DOCU_REFE, @CSNU_DOCU_REFE,        
   @CDFE_DOCU_REFE, @CSNO_GIRA, Null, Null, @CSCO_ORDE_SERV,        
   @CSSI_MVTO_CNTB, Null, Null, Null,        
   Null, 0  , Null, Null, Null, @VSDE_ERRO, @CSCO_USUA_MODI,        
   @CDFE_USUA_MODI, @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR , @CSCO_TIPO_OPER)        
          
   Select @VSDE_ERRO = Null        
  End        
          
  /* TIPO CAMBIO */        
          
  If @CNFA_CAMB Is Null        
  Begin        
   -- Inserta Error        
   Select @VNNU_SECU = @VNNU_SECU + 1        
   Select @VNNU_CONT = @VNNU_CONT + 1        
   Select @VSDE_ERRO = ' FACTOR CAMBIO NO PUEDE SER NULO'        
   Insert TTERRO_INTE (        
   CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
   NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,        
   CO_AUXI_EMPR,TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,        
   FA_CAMB_DIAR,TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,        
   NU_DOCU_REFE,FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV,        
   SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG,        
   ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, DE_ERRO,        
   CO_USUA_MODI,FE_USUA_MODI, CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER )        
   Values (        
   @CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,        
   @CNNU_ANNO, @CNNU_MESE,@CSNU_ASTO, @VNNU_SECU, @CDFE_ASTO_CNTB,         
   @CSCO_CNTA_EMPR,@CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,@CSTI_DOCU,         
   @CSNU_DOCU, @CDFE_DOCU, @CDFE_DOCU_VENC, @CSTI_CAMB,@CSCO_MONE,         
   @CNFA_CAMB, @CNFA_CAMB_DIAR,@CSTI_OPER, @CNIM_MVTO_ORIG,         
   @CNIM_MVTO_CNTB, @CSDE_GLOS,@CSTI_DOCU_REFE, @CSNU_DOCU_REFE,        
   @CDFE_DOCU_REFE, @CSNO_GIRA, Null, Null, @CSCO_ORDE_SERV,        
   @CSSI_MVTO_CNTB, Null, Null, Null,        
   Null, 0 , Null, Null, Null, @VSDE_ERRO, @CSCO_USUA_MODI,        
   @CDFE_USUA_MODI, @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR , @CSCO_TIPO_OPER)        
           
   Select @VSDE_ERRO = Null        
  End        
          
    
  /* MONEDA */        
          
  If @CSCO_MONE Is Null        
  Begin        
   -- Inserta Error        
   Select @VNNU_SECU = @VNNU_SECU + 1        
   Select @VNNU_CONT = @VNNU_CONT + 1        
   Select @VSDE_ERRO = ' CODIGO DE MONEDA NO PUEDE SER NULO'        
   Insert TTERRO_INTE (        
   CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,         NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,        
   CO_AUXI_EMPR,TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,        
   FA_CAMB_DIAR,TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,        
   NU_DOCU_REFE,FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV,        
   SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG,        
   ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, DE_ERRO,        
   CO_USUA_MODI,FE_USUA_MODI, CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER )        
   Values (        
   @CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,        
   @CNNU_ANNO, @CNNU_MESE,@CSNU_ASTO, @VNNU_SECU, @CDFE_ASTO_CNTB,         
   @CSCO_CNTA_EMPR,@CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,@CSTI_DOCU,         
   @CSNU_DOCU, @CDFE_DOCU, @CDFE_DOCU_VENC, @CSTI_CAMB,@CSCO_MONE,         
   @CNFA_CAMB, @CNFA_CAMB_DIAR,@CSTI_OPER, @CNIM_MVTO_ORIG,         
   @CNIM_MVTO_CNTB, @CSDE_GLOS,@CSTI_DOCU_REFE, @CSNU_DOCU_REFE,        
   @CDFE_DOCU_REFE, @CSNO_GIRA, Null, Null, @CSCO_ORDE_SERV,        
   @CSSI_MVTO_CNTB, Null, Null, Null,        
   Null, 0 , Null, Null, Null, @VSDE_ERRO, @CSCO_USUA_MODI,        
   @CDFE_USUA_MODI, @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR , @CSCO_TIPO_OPER)        
           
   Select @VSDE_ERRO = Null        
  End        
          
  If @CDFE_ASTO_CNTB Is Null        
  Begin        
   -- Inserta Error        
   Select @VNNU_SECU = @VNNU_SECU + 1        
   Select @VNNU_CONT = @VNNU_CONT + 1        
   Select @VSDE_ERRO = ' FECHA ASIENTO NO PUEDE SER NULA'        
   Insert TTERRO_INTE (        
   CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
   NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,        
   CO_AUXI_EMPR,TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,        
   FA_CAMB_DIAR,TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,        
   NU_DOCU_REFE,FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV,        
   SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG,        
   ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, DE_ERRO,        
   CO_USUA_MODI,FE_USUA_MODI, CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER )        
   Values (        
   @CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,        
   @CNNU_ANNO, @CNNU_MESE,@CSNU_ASTO, @VNNU_SECU, @CDFE_ASTO_CNTB,         
   @CSCO_CNTA_EMPR,@CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,@CSTI_DOCU,         
   @CSNU_DOCU, @CDFE_DOCU, @CDFE_DOCU_VENC, @CSTI_CAMB,@CSCO_MONE,         
   @CNFA_CAMB, @CNFA_CAMB_DIAR,@CSTI_OPER, @CNIM_MVTO_ORIG,         
   @CNIM_MVTO_CNTB, @CSDE_GLOS,@CSTI_DOCU_REFE, @CSNU_DOCU_REFE,        
   @CDFE_DOCU_REFE, @CSNO_GIRA, Null, Null, @CSCO_ORDE_SERV,        
   @CSSI_MVTO_CNTB, Null, Null, Null,        
   Null, 0 , Null, Null, Null, @VSDE_ERRO, @CSCO_USUA_MODI,        
   @CDFE_USUA_MODI, @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR , @CSCO_TIPO_OPER)        
           
   Select @VSDE_ERRO = Null        
  End        
          
  If @CSCO_CNTA_EMPR Is Null        
  Begin        
   -- Inserta Error        
   Select @VNNU_SECU = @VNNU_SECU + 1        
   Select @VNNU_CONT = @VNNU_CONT + 1        
   Select @VSDE_ERRO = ' CUENTA CONTABLE NO PUEDE SER NULA'        
   Insert TTERRO_INTE (        
   CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
   NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,        
   CO_AUXI_EMPR,TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,        
   FA_CAMB_DIAR,TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,        
   NU_DOCU_REFE,FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV,        
   SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG,        
   ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, DE_ERRO,        
   CO_USUA_MODI,FE_USUA_MODI, CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER )        
   Values (        
   @CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,        
   @CNNU_ANNO, @CNNU_MESE,@CSNU_ASTO, @VNNU_SECU, @CDFE_ASTO_CNTB,         
   @CSCO_CNTA_EMPR,@CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,@CSTI_DOCU,         
   @CSNU_DOCU, @CDFE_DOCU, @CDFE_DOCU_VENC, @CSTI_CAMB,@CSCO_MONE,         
   @CNFA_CAMB, @CNFA_CAMB_DIAR,@CSTI_OPER, @CNIM_MVTO_ORIG,         
   @CNIM_MVTO_CNTB, @CSDE_GLOS,@CSTI_DOCU_REFE, @CSNU_DOCU_REFE,        
   @CDFE_DOCU_REFE, @CSNO_GIRA, Null, Null, @CSCO_ORDE_SERV,        
   @CSSI_MVTO_CNTB, Null, Null, Null,        
   Null, 0 , Null, Null, Null, @VSDE_ERRO, @CSCO_USUA_MODI,        
   @CDFE_USUA_MODI, @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR , @CSCO_TIPO_OPER)        
           
   Select @VSDE_ERRO = Null        
  End        
          
  -----------------------------------------------------------------              
  -- Importe Movimiento Origen          
  -----------------------------------------------------------------              
          
  If @CNIM_MVTO_ORIG Is Null OR CONVERT(CHAR,@CNIM_MVTO_ORIG) = ''        
  Begin        
   -- Inserta Error        
   Select @VNNU_SECU = @VNNU_SECU + 1        
   Select @VNNU_CONT = @VNNU_CONT + 1        
   Select @VSDE_ERRO = ' IMPORTE ORIGEN NO PUEDE SER NULO'        
   Insert TTERRO_INTE (        
   CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,        
   CO_AUXI_EMPR,TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,        
   FA_CAMB_DIAR,TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,        
   NU_DOCU_REFE,FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV,        
   SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG,        
   ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, DE_ERRO,        
   CO_USUA_MODI,FE_USUA_MODI, CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER )        
   Values (@CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,        
   @CNNU_ANNO, @CNNU_MESE,@CSNU_ASTO, @VNNU_SECU, @CDFE_ASTO_CNTB,         
   @CSCO_CNTA_EMPR,@CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,@CSTI_DOCU,         
   @CSNU_DOCU, @CDFE_DOCU, @CDFE_DOCU_VENC, @CSTI_CAMB,@CSCO_MONE,         
   @CNFA_CAMB, @CNFA_CAMB_DIAR,@CSTI_OPER, @CNIM_MVTO_ORIG,         
   @CNIM_MVTO_CNTB, @CSDE_GLOS,@CSTI_DOCU_REFE, @CSNU_DOCU_REFE,        
   @CDFE_DOCU_REFE, @CSNO_GIRA, Null, Null, @CSCO_ORDE_SERV,        
   @CSSI_MVTO_CNTB, Null, Null, Null,        
   Null, 0 , Null, Null, Null, @VSDE_ERRO, @CSCO_USUA_MODI,        
   @CDFE_USUA_MODI, @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR , @CSCO_TIPO_OPER)        
           
   Select @VSDE_ERRO = Null        
  End        
          
  If @CNIM_MVTO_ORIG < 0        
  Begin              
   -- Inserta Error              
   Select @VNNU_SECU = @VNNU_SECU + 1              
   Select @VNNU_CONT = @VNNU_CONT + 1              
   Select @VSDE_ERRO = 'IMPORTE ORIGEN INCORRECTO'              
   Insert TTERRO_INTE (              
   CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,              
   NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,              
   CO_AUXI_EMPR,TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,              
   FA_CAMB_DIAR,TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,              
   NU_DOCU_REFE,FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV,              
   SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG,              
   ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, DE_ERRO,              
   CO_USUA_MODI,FE_USUA_MODI, CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER  )              
   Values (@CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,              
   @CNNU_ANNO, @CNNU_MESE,@CSNU_ASTO, @VNNU_SECU, @CDFE_ASTO_CNTB, @CSCO_CNTA_EMPR,              
   @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,@CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, @CDFE_DOCU_VENC, @CSTI_CAMB,              
   @CSCO_MONE, @CNFA_CAMB, @CNFA_CAMB_DIAR,@CSTI_OPER, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSDE_GLOS,              
   @CSTI_DOCU_REFE, @CSNU_DOCU_REFE,@CDFE_DOCU_REFE, @CSNO_GIRA, Null, Null, @CSCO_ORDE_SERV,              
   @CSSI_MVTO_CNTB, Null, Null, Null,              
   Null, 0, Null, Null, Null, @VSDE_ERRO, @CSCO_USUA_MODI,              
   @CDFE_USUA_MODI, @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR , @CSCO_TIPO_OPER )              
           
   Select @VSDE_ERRO = Null              
  End              
          
  -----------------------------------------------------------------              
  -- Importe Movimiento Contable              
  -----------------------------------------------------------------              
          
  If @CNIM_MVTO_CNTB Is Null OR CONVERT(CHAR,@CNIM_MVTO_CNTB) = ''        
  Begin        
   -- Inserta Error        
   Select @VNNU_SECU = @VNNU_SECU + 1        
   Select @VNNU_CONT = @VNNU_CONT + 1        
   Select @VSDE_ERRO = ' IMPORTE ORIGEN NO PUEDE SER NULO'        
   Insert TTERRO_INTE (        
   CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
   NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,        
   CO_AUXI_EMPR,TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,        
   FA_CAMB_DIAR,TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,        
   NU_DOCU_REFE,FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV,        
   SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG,        
   ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, DE_ERRO,        
   CO_USUA_MODI,FE_USUA_MODI, CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER )        
   Values (@CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,        
   @CNNU_ANNO, @CNNU_MESE,@CSNU_ASTO, @VNNU_SECU, @CDFE_ASTO_CNTB,         
   @CSCO_CNTA_EMPR,@CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,@CSTI_DOCU,         
   @CSNU_DOCU, @CDFE_DOCU, @CDFE_DOCU_VENC, @CSTI_CAMB,@CSCO_MONE,         
   @CNFA_CAMB, @CNFA_CAMB_DIAR,@CSTI_OPER, @CNIM_MVTO_ORIG,         
   @CNIM_MVTO_CNTB, @CSDE_GLOS,@CSTI_DOCU_REFE, @CSNU_DOCU_REFE,        
   @CDFE_DOCU_REFE, @CSNO_GIRA, Null, Null, @CSCO_ORDE_SERV,        
   @CSSI_MVTO_CNTB, Null, Null, Null,        
   Null, 0 , Null, Null, Null, @VSDE_ERRO, @CSCO_USUA_MODI,        
   @CDFE_USUA_MODI, @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR , @CSCO_TIPO_OPER)        
           
   Select @VSDE_ERRO = Null        
  End        
          
  If @CNIM_MVTO_CNTB < 0              
  Begin              
   -- Inserta Error              
   Select @VNNU_SECU = @VNNU_SECU + 1              
   Select @VNNU_CONT = @VNNU_CONT + 1              
   Select @VSDE_ERRO = 'IMPORTE CONTABLE INCORRECTO'            
   Insert TTERRO_INTE (              
   CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,              
   NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,              
   CO_AUXI_EMPR,TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,              
   FA_CAMB_DIAR,TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,              
   NU_DOCU_REFE,FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV,              
   SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG,              
   ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, DE_ERRO,              
   CO_USUA_MODI,FE_USUA_MODI , CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER )              
   Values (@CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,              
   @CNNU_ANNO, @CNNU_MESE,@CSNU_ASTO, @VNNU_SECU, @CDFE_ASTO_CNTB, @CSCO_CNTA_EMPR,              
   @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,@CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, @CDFE_DOCU_VENC, @CSTI_CAMB,              
   @CSCO_MONE, @CNFA_CAMB, @CNFA_CAMB_DIAR,@CSTI_OPER, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSDE_GLOS,              
   @CSTI_DOCU_REFE, @CSNU_DOCU_REFE,@CDFE_DOCU_REFE, @CSNO_GIRA, Null, Null, @CSCO_ORDE_SERV,              
   @CSSI_MVTO_CNTB, Null, Null, Null,              
   Null, 0, Null, Null, Null, @VSDE_ERRO, @CSCO_USUA_MODI,              
   @CDFE_USUA_MODI, @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR , @CSCO_TIPO_OPER )              
           
   Select @VSDE_ERRO = Null              
  End              
          
  -----------------------------------------------------------------        
  -- Fecha de Proceso        
  -----------------------------------------------------------------        
          
  Select @VNNU_ANNO = Max(NU_ANNO),        
  @VNNU_MESE = Max(NU_MESE),        
  @VNNU_ASTO = Max(NU_ULTI_ASTO)        
  From   OFICONT..TCFECH_PROC        
  Where  CO_EMPR      = @CSCO_EMPR        
  And    NU_CNTB_EMPR = @CNNU_CNTB_EMPR        
  And    CO_UNID_CNTB = @CSCO_UNID_CNTB        
  And    CO_OPRC_CNTB = @CSCO_OPRC_CNTB        
  And  NU_ANNO      = @CNNU_ANNO        
  And    NU_MESE      = @CNNU_MESE        
          
  If @VNNU_ANNO Is Null        
  Begin        
   -- Inserta Error        
   Select @VNNU_SECU = @VNNU_SECU + 1        
   Select @VNNU_CONT = @VNNU_CONT + 1        
   Select @VSDE_ERRO = 'FECHA DE PROCESO NO EXISTE'        
   Insert TTERRO_INTE (        
   CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
   NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,        
   CO_AUXI_EMPR,TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,        
   FA_CAMB_DIAR,TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,        
   NU_DOCU_REFE,FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV,        
   SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG,        
   ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, DE_ERRO,        
   CO_USUA_MODI,FE_USUA_MODI, CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER )        
   Values (@CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,        
   @CNNU_ANNO, @CNNU_MESE,@CSNU_ASTO, @VNNU_SECU, @CDFE_ASTO_CNTB, @CSCO_CNTA_EMPR,        
   @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,@CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU,         
@CDFE_DOCU_VENC, @CSTI_CAMB,@CSCO_MONE, @CNFA_CAMB, @CNFA_CAMB_DIAR,        
   @CSTI_OPER, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSDE_GLOS,        
   @CSTI_DOCU_REFE, @CSNU_DOCU_REFE,@CDFE_DOCU_REFE, @CSNO_GIRA, Null, Null,         
   @CSCO_ORDE_SERV,@CSSI_MVTO_CNTB, Null, Null, Null, Null,        
   0 , Null, Null, Null, @VSDE_ERRO, @CSCO_USUA_MODI,       @CDFE_USUA_MODI , @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR, @CSCO_TIPO_OPER)        
           
   Select @VSDE_ERRO = Null        
  End        
          
  -- Para Número de Asiento     -- Quiebre de Asiento        
  If @VSNU_ASTO != @CSNU_ASTO        
  Begin        
   -- Actualiza Número de Asiento para Quiebre        
   Select @VSNU_ASTO = @CSNU_ASTO        
   /*Select @VNNU_SECU = 0*/        
   -- Saca el Número Asiento Correspondiente        
   Select @VNNU_ASTO = NU_ULTI_ASTO + 1        
   From   OFICONT..TCFECH_PROC        
   Where  CO_EMPR      = @ISCO_EMPR        
   And    NU_CNTB_EMPR = @CNNU_CNTB_EMPR        
   And    CO_UNID_CNTB = @CSCO_UNID_CNTB        
   And    CO_OPRC_CNTB = @CSCO_OPRC_CNTB        
   And    NU_ANNO      = @CNNU_ANNO        
   And    NU_MESE      = @CNNU_MESE        
   -- Arma Número Asiento a Insertar        
   Select @VSNU_ASTO_0001 =        
   Replicate('0',10-Datalength(Convert(Varchar(20),@VNNU_ASTO)))+        
   Convert(Varchar(20),@VNNU_ASTO)        
  End        
          
  --------------------------------------        
  -- Valida Datos Cabecera        
  --------------------------------------        
  Select @VNNU_CONT = 0        
  Select @VSDE_ERRO = Null        
  -----------------------------------------------------------------        
  -- Empresa        
  -----------------------------------------------------------------        
  If Not Exists( Select  CO_EMPR        
  From   TMEMPR        
  Where  CO_EMPR = @CSCO_EMPR)        
  Begin        
   -- Inserta Error        
   Select @VNNU_SECU = @VNNU_SECU + 1        
   Select @VNNU_CONT = @VNNU_CONT + 1        
   Select @VSDE_ERRO = 'EMPRESA NO EXISTE'        
   Insert TTERRO_INTE (        
   CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
   NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,        
   CO_AUXI_EMPR,TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,        
   FA_CAMB_DIAR,TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,        
   NU_DOCU_REFE,FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV,        
   SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG,        
   ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, DE_ERRO,        
   CO_USUA_MODI,FE_USUA_MODI, CO_TABL_ORIG, CO_CLAV_TAOR , CO_TIPO_OPER)        
   Values (@CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,        
   @CNNU_ANNO, @CNNU_MESE,@CSNU_ASTO, @VNNU_SECU, @CDFE_ASTO_CNTB, @CSCO_CNTA_EMPR,        
   @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,@CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU,         
   @CDFE_DOCU_VENC, @CSTI_CAMB,@CSCO_MONE, @CNFA_CAMB, @CNFA_CAMB_DIAR,        
   @CSTI_OPER, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSDE_GLOS,        
   @CSTI_DOCU_REFE, @CSNU_DOCU_REFE,@CDFE_DOCU_REFE, @CSNO_GIRA, Null, Null,         
   @CSCO_ORDE_SERV,@CSSI_MVTO_CNTB, Null, Null, Null,        
   Null, 0 , Null, Null, Null, @VSDE_ERRO, @CSCO_USUA_MODI,        
   @CDFE_USUA_MODI, @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR , @CSCO_TIPO_OPER)        
          
  Select @VSDE_ERRO = Null        
  End        
  -----------------------------------------------------------------        
  -- Número Contabilidad        
  -----------------------------------------------------------------        
  If Not Exists ( Select NU_CNTB_EMPR        
      From   OFICONT..TTCNTB_EMPR        
      Where  CO_EMPR      = @CSCO_EMPR        
      And    NU_CNTB_EMPR = @CNNU_CNTB_EMPR )        
  Begin        
   -- Inserta Error        
   Select @VNNU_SECU = @VNNU_SECU + 1        
   Select @VNNU_CONT = @VNNU_CONT + 1        
   Select @VSDE_ERRO = 'NÚMERO CONTABILIDAD NO EXISTE'        
   Insert TTERRO_INTE (        
   CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
   NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,        
   CO_AUXI_EMPR,TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,        
   FA_CAMB_DIAR,TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,        
   NU_DOCU_REFE,FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV,        
   SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG,        
   ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, DE_ERRO,        
   CO_USUA_MODI,FE_USUA_MODI, CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER )        
   Values (@CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,        
   @CNNU_ANNO, @CNNU_MESE,@CSNU_ASTO, @VNNU_SECU, @CDFE_ASTO_CNTB, @CSCO_CNTA_EMPR,        
   @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,@CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU,         
   @CDFE_DOCU_VENC, @CSTI_CAMB,@CSCO_MONE, @CNFA_CAMB, @CNFA_CAMB_DIAR,        
   @CSTI_OPER, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSDE_GLOS,        
   @CSTI_DOCU_REFE, @CSNU_DOCU_REFE,@CDFE_DOCU_REFE, @CSNO_GIRA, Null, Null,         
   @CSCO_ORDE_SERV,@CSSI_MVTO_CNTB, Null, Null, Null,        
   Null,  0 , Null, Null, Null, @VSDE_ERRO, @CSCO_USUA_MODI,        
   @CDFE_USUA_MODI, @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR , @CSCO_TIPO_OPER)        
           
   Select @VSDE_ERRO = Null        
  End        
  -----------------------------------------------------------------        
  -- Unidad Contable        
  -----------------------------------------------------------------        
  If @CSCO_UNID_CNTB Is Null        
  Begin        
   -- Inserta Error        
   Select @VNNU_SECU = @VNNU_SECU + 1        
   Select @VNNU_CONT = @VNNU_CONT + 1        
   Select @VSDE_ERRO = 'CODIGO DE UNIDAD NO PUEDE SER NULO'        
   Insert TTERRO_INTE (        
   CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
   NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,        
   CO_AUXI_EMPR,TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,        
   FA_CAMB_DIAR,TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,        
   NU_DOCU_REFE,FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV,        
   SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG,        
   ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, DE_ERRO,        
   CO_USUA_MODI,FE_USUA_MODI, CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER )        
   Values (        
   @CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,        
   @CNNU_ANNO, @CNNU_MESE,@CSNU_ASTO, @VNNU_SECU, @CDFE_ASTO_CNTB,         
   @CSCO_CNTA_EMPR,@CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,@CSTI_DOCU,         
   @CSNU_DOCU, @CDFE_DOCU, @CDFE_DOCU_VENC, @CSTI_CAMB,@CSCO_MONE,         
   @CNFA_CAMB, @CNFA_CAMB_DIAR,@CSTI_OPER, @CNIM_MVTO_ORIG,         
   @CNIM_MVTO_CNTB, @CSDE_GLOS,@CSTI_DOCU_REFE, @CSNU_DOCU_REFE,        
   @CDFE_DOCU_REFE, @CSNO_GIRA, Null, Null, @CSCO_ORDE_SERV,        
   @CSSI_MVTO_CNTB, Null, Null, Null,        
   Null, 0 , Null, Null, Null, @VSDE_ERRO, @CSCO_USUA_MODI,        
   @CDFE_USUA_MODI, @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR , @CSCO_TIPO_OPER)        
           
   Select @VSDE_ERRO = Null        
  End        
  Else        
  Begin        
   If Not Exists( Select  CO_UNID_CNTB        
       From   OFICONT..TMUNID_CNTB        
       Where  CO_EMPR = @CSCO_EMPR        
       And    CO_UNID_CNTB = @CSCO_UNID_CNTB )        
           
   Begin        
    -- Inserta Error        
    Select @VNNU_SECU = @VNNU_SECU + 1        
    Select @VNNU_CONT = @VNNU_CONT + 1        
    Select @VSDE_ERRO = 'UNIDAD NO EXISTE'        
    Insert TTERRO_INTE (        
    CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
    NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,        
    CO_AUXI_EMPR,TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,        
    FA_CAMB_DIAR,TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,        
    NU_DOCU_REFE,FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV,        
    SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG,        
    NU_ASTO_ORIG,ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, DE_ERRO,        
    CO_USUA_MODI,FE_USUA_MODI, CO_TABL_ORIG, CO_CLAV_TAOR , CO_TIPO_OPER)        
    Values (@CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,        
    @CNNU_ANNO, @CNNU_MESE,@CSNU_ASTO, @VNNU_SECU, @CDFE_ASTO_CNTB,         
    @CSCO_CNTA_EMPR,@CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,@CSTI_DOCU, @CSNU_DOCU,         
    @CDFE_DOCU, @CDFE_DOCU_VENC, @CSTI_CAMB,@CSCO_MONE, @CNFA_CAMB,         
    @CNFA_CAMB_DIAR,@CSTI_OPER, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSDE_GLOS,        
    @CSTI_DOCU_REFE, @CSNU_DOCU_REFE,@CDFE_DOCU_REFE, @CSNO_GIRA, Null, Null,        
    @CSCO_ORDE_SERV,@CSSI_MVTO_CNTB, Null, Null, Null,        
    Null, 0  , Null, Null, Null, @VSDE_ERRO, @CSCO_USUA_MODI,        
    @CDFE_USUA_MODI, @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR , @CSCO_TIPO_OPER)        
            
    Select @VSDE_ERRO = Null        
   End        
  End        
     -----------------------------------------------------------------        
  -- Operación Contable        
  -----------------------------------------------------------------        
  If @CSCO_OPRC_CNTB Is Null        
  Begin        
   -- Inserta Error        
   Select @VNNU_SECU = @VNNU_SECU + 1        
   Select @VNNU_CONT = @VNNU_CONT + 1        
   Select @VSDE_ERRO = 'CODIGO DE OPERACION NO PUEDE SER NULO'        
   Insert TTERRO_INTE (        
   CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
   NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,        
   CO_AUXI_EMPR,TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,        
   FA_CAMB_DIAR,TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,        
   NU_DOCU_REFE,FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV,        
   SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG,        
   ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, DE_ERRO,        
   CO_USUA_MODI,FE_USUA_MODI, CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER )        
   Values (@CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,        
   @CNNU_ANNO, @CNNU_MESE,@CSNU_ASTO, @VNNU_SECU, @CDFE_ASTO_CNTB, @CSCO_CNTA_EMPR,        
   @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,@CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU,         
   @CDFE_DOCU_VENC, @CSTI_CAMB,@CSCO_MONE, @CNFA_CAMB, @CNFA_CAMB_DIAR,        
   @CSTI_OPER, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSDE_GLOS,        
   @CSTI_DOCU_REFE, @CSNU_DOCU_REFE,@CDFE_DOCU_REFE, @CSNO_GIRA,         
   Null, Null, @CSCO_ORDE_SERV,@CSSI_MVTO_CNTB,         
   Null, Null, Null,Null, 0, Null, Null, Null, @VSDE_ERRO,         
   @CSCO_USUA_MODI,@CDFE_USUA_MODI, @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR,         
   @CSCO_TIPO_OPER )        
           
   Select @VSDE_ERRO = Null        
  End        
  Else        
  Begin        
   If Not Exists ( Select CO_OPRC_CNTB             From   OFICONT..TMOPRC_CNTB        
       Where  CO_EMPR      = @CSCO_EMPR        
       And    CO_OPRC_CNTB = @CSCO_OPRC_CNTB )        
   Begin        
    -- Inserta Error        
    Select @VNNU_SECU = @VNNU_SECU + 1        
    Select @VNNU_CONT = @VNNU_CONT + 1        
    Select @VSDE_ERRO = 'CODIGO DE OPERACION NO EXISTE'        
    Insert TTERRO_INTE (        
    CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
    NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,        
    CO_AUXI_EMPR,TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,        
    FA_CAMB_DIAR,TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,        
    NU_DOCU_REFE,FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV,        
    SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG,        
    NU_ASTO_ORIG,ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, DE_ERRO,        
    CO_USUA_MODI,FE_USUA_MODI, CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER )        
    Values (@CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,        
    @CNNU_ANNO, @CNNU_MESE,@CSNU_ASTO, @VNNU_SECU, @CDFE_ASTO_CNTB, @CSCO_CNTA_EMPR,        
    @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,@CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU,         
    @CDFE_DOCU_VENC, @CSTI_CAMB,@CSCO_MONE, @CNFA_CAMB, @CNFA_CAMB_DIAR,        
    @CSTI_OPER, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSDE_GLOS,        
    @CSTI_DOCU_REFE, @CSNU_DOCU_REFE,@CDFE_DOCU_REFE, @CSNO_GIRA, Null, Null,         
    @CSCO_ORDE_SERV,@CSSI_MVTO_CNTB, Null, Null, Null,        
    Null,0 , Null, Null, Null, @VSDE_ERRO, @CSCO_USUA_MODI,        
    @CDFE_USUA_MODI, @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR, @CSCO_TIPO_OPER )        
           
    Select @VSDE_ERRO = Null        
   End        
  End        
  --------------------------------------        
  -- Valida Datos Detalle        
  --------------------------------------        
  -----------------------------------------------------------------        
  -- Cuenta Contable        
  -----------------------------------------------------------------        
  Select @VSCO_CNTA_EMPR = NULL,        
  @VSST_AUXI_EMPR = NULL,        
  @VSST_DOCU_CNTB = NULL,        
  @VSCO_MONE_CNTA = NULL,        
  @VSST_ORDE_SERV = NULL        
          
  Select @VSCO_CNTA_EMPR = CO_CNTA_EMPR,        
  @VSST_AUXI_EMPR = ST_AUXI_EMPR,        
  @VSST_DOCU_CNTB = ST_DOCU_CNTB,        
  @VSST_MONE = ST_MONE ,        
  @VSCO_MONE_CNTA = CO_MONE ,   @VSST_ORDE_SERV = ST_ORDE_SERV        
  From   OFICONT..TMPLAN_EMPR        
  Where  CO_EMPR      = @CSCO_EMPR        
  And    CO_CNTA_EMPR = @CSCO_CNTA_EMPR        
  AND    TI_SITU = 'ACT'        
          
          
  IF @VSST_ORDE_SERV = 'S' and ISNULL(DATALENGTH(LTRIM(RTRIM(ISNULL(@CSCO_ORDE_SERV,'')))),0) = 0        
  BEGIN        
   Select @VNNU_SECU = @VNNU_SECU + 1        
   Select @VNNU_CONT = @VNNU_CONT + 1        
   Select @VSDE_ERRO = 'CUENTA LLEVA ORDEN DE SERVICIO'        
   Insert TTERRO_INTE (        
   CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
   NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,        
   CO_AUXI_EMPR,TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,        
   FA_CAMB_DIAR,        
   TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,        
   NU_DOCU_REFE,FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ,        
   CO_ORDE_SERV,SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG,        
   ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, DE_ERRO,        
   CO_USUA_MODI,FE_USUA_MODI , CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER)        
   Values (@CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,        
   @CNNU_ANNO, @CNNU_MESE,@CSNU_ASTO, @VNNU_SECU, @CDFE_ASTO_CNTB, @CSCO_CNTA_EMPR,        
   @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,        
   @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, @CDFE_DOCU_VENC, @CSTI_CAMB,        
   @CSCO_MONE, @CNFA_CAMB, @CNFA_CAMB_DIAR,        
   @CSTI_OPER, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSDE_GLOS,        
   @CSTI_DOCU_REFE, @CSNU_DOCU_REFE,        
   @CDFE_DOCU_REFE, @CSNO_GIRA, Null, Null, @CSCO_ORDE_SERV,        
  @CSSI_MVTO_CNTB, Null, Null, Null,        
   Null, 0 , Null, Null, Null, @VSDE_ERRO, @CSCO_USUA_MODI,        
   @CDFE_USUA_MODI , @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR, @CSCO_TIPO_OPER)        
           
   Select @VSDE_ERRO = Null        
  END        
          
  IF @VSST_ORDE_SERV = 'N' and ISNULL(DATALENGTH(LTRIM(RTRIM(ISNULL(@CSCO_ORDE_SERV,'')))),0) > 0        
  BEGIN        
   Select @VNNU_SECU = @VNNU_SECU + 1        
   Select @VNNU_CONT = @VNNU_CONT + 1        
   Select @VSDE_ERRO = 'CUENTA NO LLEVA ORDEN DE SERVICIO'        
   Insert TTERRO_INTE (        
   CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
   NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,        
   CO_AUXI_EMPR,TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,        
   FA_CAMB_DIAR,        
   TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,        
   NU_DOCU_REFE,FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ,        
   CO_ORDE_SERV,SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG,        
   ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, DE_ERRO,        
   CO_USUA_MODI,FE_USUA_MODI , CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER)        
   Values (@CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,        
   @CNNU_ANNO, @CNNU_MESE,@CSNU_ASTO, @VNNU_SECU, @CDFE_ASTO_CNTB, @CSCO_CNTA_EMPR,        
   @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,        
   @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, @CDFE_DOCU_VENC, @CSTI_CAMB,        
   @CSCO_MONE, @CNFA_CAMB, @CNFA_CAMB_DIAR,        
   @CSTI_OPER, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSDE_GLOS,        
   @CSTI_DOCU_REFE, @CSNU_DOCU_REFE,        
   @CDFE_DOCU_REFE, @CSNO_GIRA, Null, Null, @CSCO_ORDE_SERV,        
   @CSSI_MVTO_CNTB, Null, Null, Null,        
   Null, 0 , Null, Null, Null, @VSDE_ERRO, @CSCO_USUA_MODI,        
   @CDFE_USUA_MODI , @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR, @CSCO_TIPO_OPER)        
           
   Select @VSDE_ERRO = Null        
  END        
          
  IF @VSST_MONE = 'S' and @CSCO_MONE != @VSCO_MONE_CNTA and @CSCO_OPRC_CNTB != '013'        
  BEGIN        
 Select @VNNU_SECU = @VNNU_SECU + 1        
   Select @VNNU_CONT = @VNNU_CONT + 1        
   Select @VSDE_ERRO = 'MONEDA NO CORRESPONDE A LA CUENTA '        
   Insert TTERRO_INTE (        
   CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
   NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,        
   CO_AUXI_EMPR,        
   TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,        
   FA_CAMB_DIAR,        
   TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,        
   NU_DOCU_REFE,FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ,  CO_ORDE_SERV,        
   SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG,        
   ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, DE_ERRO,        
   CO_USUA_MODI,        
   FE_USUA_MODI , CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER)        
   Values (        
   @CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,        
   @CNNU_ANNO, @CNNU_MESE,        
   @CSNU_ASTO, @VNNU_SECU, @CDFE_ASTO_CNTB, @CSCO_CNTA_EMPR,        
   @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,        
   @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, @CDFE_DOCU_VENC, @CSTI_CAMB,        
   @CSCO_MONE, @CNFA_CAMB, @CNFA_CAMB_DIAR,        
   @CSTI_OPER, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSDE_GLOS,        
   @CSTI_DOCU_REFE, @CSNU_DOCU_REFE,        
   @CDFE_DOCU_REFE, @CSNO_GIRA, Null, Null, @CSCO_ORDE_SERV,        
   @CSSI_MVTO_CNTB, Null, Null, Null,        
   Null,  0 , Null, Null, Null, @VSDE_ERRO, @CSCO_USUA_MODI,        
   @CDFE_USUA_MODI , @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR, @CSCO_TIPO_OPER)        
           
   Select @VSDE_ERRO = Null        
  END        
          
  If @VSCO_CNTA_EMPR Is Null        
  Begin        
   -- Inserta Error        
   Select @VNNU_SECU = @VNNU_SECU + 1        
   Select @VNNU_CONT = @VNNU_CONT + 1        
   Select @VSDE_ERRO = 'CUENTA NO EXISTE O ESTA DESACTIVADA '        
   Insert TTERRO_INTE (        
   CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
   NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,        
   CO_AUXI_EMPR,        
   TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,        
   FA_CAMB_DIAR,        
   TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,        
   NU_DOCU_REFE,FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ,        
   CO_ORDE_SERV,SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG,        
   ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, DE_ERRO,        
   CO_USUA_MODI,FE_USUA_MODI , CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER)        
   Values (@CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,        
   @CNNU_ANNO, @CNNU_MESE,@CSNU_ASTO, @VNNU_SECU, @CDFE_ASTO_CNTB, @CSCO_CNTA_EMPR,        
   @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,@CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU,         
   @CDFE_DOCU_VENC, @CSTI_CAMB,@CSCO_MONE, @CNFA_CAMB, @CNFA_CAMB_DIAR,        
   @CSTI_OPER, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSDE_GLOS,        
   @CSTI_DOCU_REFE, @CSNU_DOCU_REFE,        
   @CDFE_DOCU_REFE, @CSNO_GIRA, Null, Null, @CSCO_ORDE_SERV,        
   @CSSI_MVTO_CNTB, Null, Null, Null,        
   Null,  0 , Null, Null, Null, @VSDE_ERRO, @CSCO_USUA_MODI,        
   @CDFE_USUA_MODI , @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR, @CSCO_TIPO_OPER)        
           
   Select @VSDE_ERRO = Null        
  End        
  -----------------------------------------------------------------        
  -- Tipo Auxiliar        
  -----------------------------------------------------------------        
          
  If @CSTI_AUXI_EMPR Is Not Null        
  Begin        
   Select @VSTI_AUXI_EMPR = TI_AUXI_EMPR        
   From   TTAUXI_EMPR        
   Where  CO_EMPR      = @CSCO_EMPR        
   And    TI_AUXI_EMPR = @CSTI_AUXI_EMPR        
          
   If @VSTI_AUXI_EMPR Is Null        
   Begin        
    -- Inserta Error        
    Select @VNNU_SECU = @VNNU_SECU + 1        
    Select @VNNU_CONT = @VNNU_CONT + 1        
    Select @VSDE_ERRO = 'TIPO AUXILIAR NO EXISTE'        
    Insert TTERRO_INTE (        
    CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
    NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,        
    CO_AUXI_EMPR,TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,        
    FA_CAMB_DIAR,TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,        
    NU_DOCU_REFE,FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV,        
    SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG,        
    NU_ASTO_ORIG,ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, DE_ERRO,        
    CO_USUA_MODI,FE_USUA_MODI , CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER)        
    Values (@CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,        
    @CNNU_ANNO, @CNNU_MESE,@CSNU_ASTO, @VNNU_SECU, @CDFE_ASTO_CNTB,        
    @CSCO_CNTA_EMPR, @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,        
    @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, @CDFE_DOCU_VENC, @CSTI_CAMB,        
    @CSCO_MONE, @CNFA_CAMB, @CNFA_CAMB_DIAR,        
    @CSTI_OPER, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSDE_GLOS,        
    @CSTI_DOCU_REFE, @CSNU_DOCU_REFE,        
    @CDFE_DOCU_REFE, @CSNO_GIRA, Null, Null, @CSCO_ORDE_SERV,        
    @CSSI_MVTO_CNTB, Null, Null, Null,        
    Null,  0 , Null, Null, Null, @VSDE_ERRO, @CSCO_USUA_MODI,        
    @CDFE_USUA_MODI, @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR , @CSCO_TIPO_OPER)        
            
    Select @VSDE_ERRO = Null        
   End        
  End        
  -----------------------------------------------------------------        
  -- Código Auxiliar        
  -----------------------------------------------------------------        
  If @CSCO_AUXI_EMPR Is Not Null        
  Begin        
   Select @VSCO_AUXI_EMPR = CO_AUXI_EMPR        
   From   TMAUXI_EMPR        
   Where  CO_EMPR      = @CSCO_EMPR        
   And    TI_AUXI_EMPR = @CSTI_AUXI_EMPR        
   And    CO_AUXI_EMPR = @CSCO_AUXI_EMPR        
          
   If  @VSCO_AUXI_EMPR Is Null        
   Begin        
    -- Inserta Error        
    Select @VNNU_SECU = @VNNU_SECU + 1        
    Select @VNNU_CONT = @VNNU_CONT + 1        
    Select @VSDE_ERRO = 'CÓDIGO AUXILIAR NO EXISTE'        
    Insert TTERRO_INTE (        
    CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
    NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,        
    CO_AUXI_EMPR,TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,        
    FA_CAMB_DIAR,TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,        
    NU_DOCU_REFE,FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV,        
    SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG,        
    NU_ASTO_ORIG,ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, DE_ERRO,        
    CO_USUA_MODI,FE_USUA_MODI, CO_TABL_ORIG, CO_CLAV_TAOR , CO_TIPO_OPER)        
    Values (@CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,        
    @CNNU_ANNO, @CNNU_MESE,@CSNU_ASTO, @VNNU_SECU, @CDFE_ASTO_CNTB, @CSCO_CNTA_EMPR,        
    @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,@CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU,         
    @CDFE_DOCU_VENC, @CSTI_CAMB,@CSCO_MONE, @CNFA_CAMB, @CNFA_CAMB_DIAR,        
    @CSTI_OPER, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSDE_GLOS,        
    @CSTI_DOCU_REFE, @CSNU_DOCU_REFE,@CDFE_DOCU_REFE, @CSNO_GIRA, Null,         
    Null, @CSCO_ORDE_SERV,        
    @CSSI_MVTO_CNTB, Null, Null, Null,        
    Null, 0 , Null, Null, Null, @VSDE_ERRO, @CSCO_USUA_MODI,        
    @CDFE_USUA_MODI, @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR, @CSCO_TIPO_OPER )        
            
    Select @VSDE_ERRO = Null        
   End        
  End        
  -----------------------------------------------------------------        
  -- Valida Auxiliar Vs Plan Cuentas        
  -----------------------------------------------------------------        
  If @VSST_AUXI_EMPR = 'N'        
  Begin        
   If (@CSTI_AUXI_EMPR Is Not Null Or @CSCO_AUXI_EMPR Is Not Null)        
   and (Ltrim(Rtrim(@CSTI_AUXI_EMPR)) != '' Or Ltrim(Rtrim(@CSCO_AUXI_EMPR)) != '')        
   Begin        
    -- Inserta Error        
    Select @VNNU_SECU = @VNNU_SECU + 1        
    Select @VNNU_CONT = @VNNU_CONT + 1        
    Select @VSDE_ERRO = 'CUENTA NO LLEVA TIPO NI CÓDIGO AUXILIAR'        
    Insert TTERRO_INTE (        
    CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
    NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,        
    CO_AUXI_EMPR,TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,        
    FA_CAMB_DIAR,TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,        
    NU_DOCU_REFE,FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV,        
    SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG,        
    NU_ASTO_ORIG,ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, DE_ERRO,        
    CO_USUA_MODI,FE_USUA_MODI, CO_TABL_ORIG, CO_CLAV_TAOR , CO_TIPO_OPER)        
    Values (@CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,        
    @CNNU_ANNO, @CNNU_MESE,@CSNU_ASTO, @VNNU_SECU, @CDFE_ASTO_CNTB, @CSCO_CNTA_EMPR,        
    @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,@CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU,         
    @CDFE_DOCU_VENC, @CSTI_CAMB,@CSCO_MONE, @CNFA_CAMB, @CNFA_CAMB_DIAR,        
    @CSTI_OPER, @CNIM_MVTO_ORIG,@CNIM_MVTO_CNTB, @CSDE_GLOS,    @CSTI_DOCU_REFE, @CSNU_DOCU_REFE,@CDFE_DOCU_REFE, @CSNO_GIRA,         
    Null, Null, @CSCO_ORDE_SERV,@CSSI_MVTO_CNTB, Null, Null, Null,        
    Null, 0 , Null, Null, Null, @VSDE_ERRO, @CSCO_USUA_MODI,        
    @CDFE_USUA_MODI, @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR , @CSCO_TIPO_OPER)        
            
    Select @VSDE_ERRO = Null        
   End        
  End        
  Else If @VSST_AUXI_EMPR = 'S'        
  Begin        
   If (@CSTI_AUXI_EMPR Is Null Or @CSCO_AUXI_EMPR Is Null)        
   Or (Ltrim(Rtrim(@CSTI_AUXI_EMPR)) = '' Or Ltrim(Rtrim(@CSCO_AUXI_EMPR)) = '')            
   Begin        
    -- Inserta Error        
    Select @VNNU_SECU = @VNNU_SECU + 1        
    Select @VNNU_CONT = @VNNU_CONT + 1        
    Select @VSDE_ERRO = 'CUENTA LLEVA TIPO Ó CÓDIGO AUXILIAR'        
    Insert TTERRO_INTE (        
    CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
    NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,        
    CO_AUXI_EMPR,TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,        
    FA_CAMB_DIAR,TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,        
    NU_DOCU_REFE,FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV,        
    SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG,        
    NU_ASTO_ORIG,ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, DE_ERRO,        
    CO_USUA_MODI,FE_USUA_MODI, CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER )        
    Values (@CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,        
    @CNNU_ANNO, @CNNU_MESE,@CSNU_ASTO, @VNNU_SECU, @CDFE_ASTO_CNTB, @CSCO_CNTA_EMPR,        
    @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,@CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU,         
    @CDFE_DOCU_VENC, @CSTI_CAMB,@CSCO_MONE, @CNFA_CAMB, @CNFA_CAMB_DIAR,        
    @CSTI_OPER, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSDE_GLOS,        
    @CSTI_DOCU_REFE, @CSNU_DOCU_REFE,@CDFE_DOCU_REFE, @CSNO_GIRA, Null, Null,         
    @CSCO_ORDE_SERV,@CSSI_MVTO_CNTB, Null, Null, Null,        
    Null, 0 , Null, Null, Null, @VSDE_ERRO, @CSCO_USUA_MODI,        
    @CDFE_USUA_MODI, @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR, @CSCO_TIPO_OPER )        
            
    Select @VSDE_ERRO = Null        
   End        
  End        
  -----------------------------------------------------------------        
  -- Tipo Documento        
  -----------------------------------------------------------------        
  If RTRIM(ISNULL(@CSTI_DOCU, '')) != ''        
  Begin        
   Select @VSTI_DOCU = NULL        
           
   Select @VSTI_DOCU = TI_DOCU        
   From   TTDOCU_CNTB        
   Where  TI_DOCU = @CSTI_DOCU        
           
   If @VSTI_DOCU Is Null        
   Begin        
    -- Inserta Error        
    Select @VNNU_SECU = @VNNU_SECU + 1        
    Select @VNNU_CONT = @VNNU_CONT + 1        
    Select @VSDE_ERRO = 'TIPO DOCUMENTO NO EXISTE'        
    Insert TTERRO_INTE (        
    CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
    NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,       
    CO_AUXI_EMPR,TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,        
    FA_CAMB_DIAR,TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,        
    NU_DOCU_REFE,FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV,        
    SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG,NU_ASTO_ORIG,        
    ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, DE_ERRO,        
    CO_USUA_MODI,FE_USUA_MODI, CO_TABL_ORIG, CO_CLAV_TAOR , CO_TIPO_OPER)        
    Values (@CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,        
    @CNNU_ANNO, @CNNU_MESE,@CSNU_ASTO, @VNNU_SECU, @CDFE_ASTO_CNTB, @CSCO_CNTA_EMPR,        
    @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,@CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU,         
    @CDFE_DOCU_VENC, @CSTI_CAMB,@CSCO_MONE, @CNFA_CAMB, @CNFA_CAMB_DIAR,        
    @CSTI_OPER, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSDE_GLOS,        
    @CSTI_DOCU_REFE, @CSNU_DOCU_REFE,@CDFE_DOCU_REFE, @CSNO_GIRA, Null, Null,         
    @CSCO_ORDE_SERV,@CSSI_MVTO_CNTB, Null, Null, Null,        
    Null, 0 , Null, Null, Null, @VSDE_ERRO, @CSCO_USUA_MODI,        
    @CDFE_USUA_MODI , @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR, @CSCO_TIPO_OPER)        
            
    Select @VSDE_ERRO = Null        
   End        
      End        
  -----------------------------------------------------------------        
  -- Valida Documento Vs Plan Cuentas        
  -----------------------------------------------------------------        
  If @VSST_DOCU_CNTB = 'N'        
  Begin        
   If @CSTI_DOCU Is Not Null Or @CSNU_DOCU Is Not Null Or @CDFE_DOCU Is Not Null        
   Or @CDFE_DOCU_VENC Is Not Null        
   Begin        
    -- Inserta Error        
    Select @VNNU_SECU = @VNNU_SECU + 1        
    Select @VNNU_CONT = @VNNU_CONT + 1        
    Select @VSDE_ERRO = 'CUENTA NO LLEVA DATOS DE DOCUMENTO'        
    Insert TTERRO_INTE (        
    CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
    NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,        
    CO_AUXI_EMPR, TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,        
    FA_CAMB_DIAR, TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,        
    NU_DOCU_REFE, FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV,        
    SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG,        
    NU_ASTO_ORIG, ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG,         
    DE_ERRO, CO_USUA_MODI,        
    FE_USUA_MODI , CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER)        
    Values (@CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,        
    @CNNU_ANNO, @CNNU_MESE,@CSNU_ASTO, @VNNU_SECU, @CDFE_ASTO_CNTB, @CSCO_CNTA_EMPR,        
    @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU,         
    @CDFE_DOCU_VENC, @CSTI_CAMB,@CSCO_MONE, @CNFA_CAMB, @CNFA_CAMB_DIAR,        
    @CSTI_OPER, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSDE_GLOS,        
    @CSTI_DOCU_REFE, @CSNU_DOCU_REFE,@CDFE_DOCU_REFE, @CSNO_GIRA, Null, Null,         
    @CSCO_ORDE_SERV, @CSSI_MVTO_CNTB, Null, Null, Null,        
    Null, 0 , Null, Null, Null, @VSDE_ERRO, @CSCO_USUA_MODI,        
    @CDFE_USUA_MODI, @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR , @CSCO_TIPO_OPER)        
            
    Select @VSDE_ERRO = Null        
   End        
  End        
  If @VSST_DOCU_CNTB = 'S'        
  Begin        
   If @CSTI_DOCU Is Null Or @CSNU_DOCU Is Null Or @CDFE_DOCU Is Null        
   Or @CDFE_DOCU_VENC Is Null        
   Begin        
    -- Inserta Error        
    Select @VNNU_SECU = @VNNU_SECU + 1        
    Select @VNNU_CONT = @VNNU_CONT + 1        
    Select @VSDE_ERRO = 'CUENTA LLEVA DATOS DE DOCUMENTO'        
    Insert TTERRO_INTE (        
    CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
    NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,        
    CO_AUXI_EMPR, TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,        
    FA_CAMB_DIAR, TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,        
    NU_DOCU_REFE, FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV,        
    SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG,        
    NU_ASTO_ORIG, ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, DE_ERRO,        
    CO_USUA_MODI, FE_USUA_MODI , CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER)        
    Values (@CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,        
    @CNNU_ANNO, @CNNU_MESE, @CSNU_ASTO, @VNNU_SECU, @CDFE_ASTO_CNTB, @CSCO_CNTA_EMPR,        
    @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU,         
    @CDFE_DOCU_VENC, @CSTI_CAMB,@CSCO_MONE, @CNFA_CAMB, @CNFA_CAMB_DIAR,        
    @CSTI_OPER, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSDE_GLOS,        
    @CSTI_DOCU_REFE, @CSNU_DOCU_REFE, @CDFE_DOCU_REFE, @CSNO_GIRA, Null,         
    Null, @CSCO_ORDE_SERV, @CSSI_MVTO_CNTB, Null, Null, Null,        
    Null, 0 , Null, Null, Null, @VSDE_ERRO, @CSCO_USUA_MODI,        
    @CDFE_USUA_MODI, @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR, @CSCO_TIPO_OPER )        
            
    Select @VSDE_ERRO = Null        
   End        
  End        
  -----------------------------------------------------------------        
  -- Número Documento        
  -----------------------------------------------------------------        
          
  -----------------------------------------------------------------             
  --  Orden Servicio        
  -----------------------------------------------------------------        
      
  
      
  If @CSCO_ORDE_SERV Is Not Null and @VSST_ORDE_SERV = 'S'        
  Begin        
   Select @VSCO_ORDE_SERV = CO_ORDE_SERV        
   From   OFICONT..TMORDE_SERV        
   Where  CO_EMPR      = @CSCO_EMPR        
   And    CO_ORDE_SERV = @CSCO_ORDE_SERV        
          
   If Not Exists (  Select  CO_ORDE_SERV        
   From   OFICONT..TMORDE_SERV        
   Where  CO_EMPR      = @CSCO_EMPR        
   And    CO_ORDE_SERV = @CSCO_ORDE_SERV )        
   Begin        
  
  
    -- Inserta Error        
    Select @VNNU_SECU = @VNNU_SECU + 1        
    Select @VNNU_CONT = @VNNU_CONT + 1        
    Select @VSDE_ERRO = 'ORDEN SERVICIO NO EXISTE'        
    Insert TTERRO_INTE (        
    CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
    NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,     
    CO_AUXI_EMPR, TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,        
    FA_CAMB_DIAR, TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,        
    NU_DOCU_REFE, FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV,        
    SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG,        
    NU_ASTO_ORIG, ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, DE_ERRO,        
    CO_USUA_MODI,FE_USUA_MODI , CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER)        
    Values (@CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,        
    @CNNU_ANNO, @CNNU_MESE, @CSNU_ASTO, @VNNU_SECU, @CDFE_ASTO_CNTB, @CSCO_CNTA_EMPR,        
    @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU,         
    @CDFE_DOCU_VENC, @CSTI_CAMB,@CSCO_MONE, @CNFA_CAMB, @CNFA_CAMB_DIAR,        
    @CSTI_OPER, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSDE_GLOS,        
    @CSTI_DOCU_REFE, @CSNU_DOCU_REFE, @CDFE_DOCU_REFE, @CSNO_GIRA, Null, Null,         
    @CSCO_ORDE_SERV, @CSSI_MVTO_CNTB, Null, Null, Null,        
    Null, 0 , Null, Null, Null, @VSDE_ERRO, @CSCO_USUA_MODI,        
    @CDFE_USUA_MODI, @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR, @CSCO_TIPO_OPER )        
            
    Select @VSDE_ERRO = Null               
   End        
  End        
  -----------------------------------------------------------------        
  -- Moneda        
  -----------------------------------------------------------------        
  If @CSCO_MONE Is Null        
  Begin        
   -- Inserta Error        
   Select @VNNU_SECU = @VNNU_SECU + 1        
   Select @VNNU_CONT = @VNNU_CONT + 1        
   Select @VSDE_ERRO = 'MONEDA NO PUEDE SER NULA'        
   Insert TTERRO_INTE (        
   CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
   NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,        
   CO_AUXI_EMPR,TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,        
   FA_CAMB_DIAR,TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,        
   NU_DOCU_REFE,FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV,        
   SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG,        
   ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, DE_ERRO,        
   CO_USUA_MODI,FE_USUA_MODI, CO_TABL_ORIG, CO_CLAV_TAOR , CO_TIPO_OPER )        
   Values (@CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,        
   @CNNU_ANNO, @CNNU_MESE,@CSNU_ASTO, @VNNU_SECU, @CDFE_ASTO_CNTB, @CSCO_CNTA_EMPR,        
   @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,@CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU,         
   @CDFE_DOCU_VENC, @CSTI_CAMB,@CSCO_MONE, @CNFA_CAMB, @CNFA_CAMB_DIAR,@CSTI_OPER,         
   @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSDE_GLOS,@CSTI_DOCU_REFE, @CSNU_DOCU_REFE,        
   @CDFE_DOCU_REFE, @CSNO_GIRA, Null, Null, @CSCO_ORDE_SERV,        
   @CSSI_MVTO_CNTB, Null, Null, Null,        
   Null, 0 , Null, Null, Null, @VSDE_ERRO, @CSCO_USUA_MODI,        
   @CDFE_USUA_MODI , @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR, @CSCO_TIPO_OPER )        
   Select @VSDE_ERRO = Null        
  End        
  Else        
  Begin        
   Select @VSCO_MONE_0001 = CO_MONE        
   From   TTMONE        
   Where  CO_MONE = @CSCO_MONE        
           
   If @VSCO_MONE Is Null        
      Begin        
    -- Inserta Error        
    Select @VNNU_SECU = @VNNU_SECU + 1        
    Select @VNNU_CONT = @VNNU_CONT + 1        
    Select @VSDE_ERRO = 'TIPO MONEDA NO EXISTE'        
    Insert TTERRO_INTE (        
    CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
    NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,        
    CO_AUXI_EMPR,TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,        
    FA_CAMB_DIAR,TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,        
    NU_DOCU_REFE,FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV,        
    SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG,        
    NU_ASTO_ORIG,ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, DE_ERRO,        
    CO_USUA_MODI,FE_USUA_MODI , CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER )        
    Values (@CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,        
    @CNNU_ANNO, @CNNU_MESE, @CSNU_ASTO, @VNNU_SECU, @CDFE_ASTO_CNTB, @CSCO_CNTA_EMPR,        
    @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,        
    @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, @CDFE_DOCU_VENC, @CSTI_CAMB,        
    @CSCO_MONE, @CNFA_CAMB, @CNFA_CAMB_DIAR,        
    @CSTI_OPER, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSDE_GLOS,        
    @CSTI_DOCU_REFE, @CSNU_DOCU_REFE,        
    @CDFE_DOCU_REFE, @CSNO_GIRA, Null, Null, @CSCO_ORDE_SERV,        
    @CSSI_MVTO_CNTB, Null, Null, Null,        
    Null, 0 , Null, Null, Null, @VSDE_ERRO, @CSCO_USUA_MODI,        
    @CDFE_USUA_MODI, @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR , @CSCO_TIPO_OPER )        
            
    Select @VSDE_ERRO = Null        
   End        
  End        
  -----------------------------------------------------------------        
  -- Tipo de Operación        
  -----------------------------------------------------------------        
  If @CSTI_OPER Not In ('ABO','CAR')        
  Begin        
   -- Inserta Error        
   Select @VNNU_SECU = @VNNU_SECU + 1        
   Select @VNNU_CONT = @VNNU_CONT + 1        
   Select @VSDE_ERRO = 'TIPO OPERACIÓN INCORRECTA'        
   Insert TTERRO_INTE (        
   CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
   NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,        
   CO_AUXI_EMPR,TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,        
   FA_CAMB_DIAR,TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,        
   NU_DOCU_REFE,FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV,        
   SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG,        
   ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, DE_ERRO,        
   CO_USUA_MODI,FE_USUA_MODI, CO_TABL_ORIG, CO_CLAV_TAOR , CO_TIPO_OPER )        
   Values (        
   @CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,        
   @CNNU_ANNO, @CNNU_MESE,@CSNU_ASTO, @VNNU_SECU, @CDFE_ASTO_CNTB,         
   @CSCO_CNTA_EMPR,@CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,@CSTI_DOCU,         
   @CSNU_DOCU, @CDFE_DOCU, @CDFE_DOCU_VENC, @CSTI_CAMB,@CSCO_MONE,         
   @CNFA_CAMB, @CNFA_CAMB_DIAR,@CSTI_OPER, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB,         
   @CSDE_GLOS,@CSTI_DOCU_REFE, @CSNU_DOCU_REFE,@CDFE_DOCU_REFE, @CSNO_GIRA,         
   Null, Null, @CSCO_ORDE_SERV,@CSSI_MVTO_CNTB, Null, Null, Null,        
   Null, 0 , Null, Null, Null, @VSDE_ERRO, @CSCO_USUA_MODI,        
   @CDFE_USUA_MODI, @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR, @CSCO_TIPO_OPER  )        
          
   Select @VSDE_ERRO = Null        
  End        
  -----------------------------------------------------------------        
  -- Tipo de Cambio        
  -----------------------------------------------------------------        
  If @CSTI_CAMB Not In ('COM','VEN','PAC' )        
  Begin        
   -- Inserta Error        
   Select @VNNU_SECU = @VNNU_SECU + 1        
   Select @VNNU_CONT = @VNNU_CONT + 1        
   Select @VSDE_ERRO = 'TIPO CAMBIO INCORRECTO'        
   Insert TTERRO_INTE (       
   CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
   NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,        
   CO_AUXI_EMPR,TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,        
   FA_CAMB_DIAR,TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,        
   NU_DOCU_REFE,FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV,       SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG,        
   ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, DE_ERRO,        
   CO_USUA_MODI,FE_USUA_MODI, CO_TABL_ORIG, CO_CLAV_TAOR , CO_TIPO_OPER )        
   Values (@CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,        
   @CNNU_ANNO, @CNNU_MESE,@CSNU_ASTO, @VNNU_SECU, @CDFE_ASTO_CNTB, @CSCO_CNTA_EMPR,        
   @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,@CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU,         
   @CDFE_DOCU_VENC, @CSTI_CAMB,@CSCO_MONE, @CNFA_CAMB, @CNFA_CAMB_DIAR,        
   @CSTI_OPER, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSDE_GLOS,        
   @CSTI_DOCU_REFE, @CSNU_DOCU_REFE,@CDFE_DOCU_REFE, @CSNO_GIRA, Null, Null,         
   @CSCO_ORDE_SERV,@CSSI_MVTO_CNTB, Null, Null, Null,        
   Null, 0 , Null, Null, Null, @VSDE_ERRO, @CSCO_USUA_MODI,        
   @CDFE_USUA_MODI, @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR , @CSCO_TIPO_OPER )        
           
   Select @VSDE_ERRO = Null        
  End        
  -----------------------------------------------------------------        
  -- Factor Cambio        
  -----------------------------------------------------------------        
  If @CNFA_CAMB <= 0        
  Begin        
   -- Inserta Error        
   Select @VNNU_SECU = @VNNU_SECU + 1        
   Select @VNNU_CONT = @VNNU_CONT + 1        
   Select @VSDE_ERRO = 'FACTOR CAMBIO INCORRECTO'        
   Insert TTERRO_INTE (        
   CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
   NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,        
   CO_AUXI_EMPR,TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,        
   FA_CAMB_DIAR,TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,        
   NU_DOCU_REFE,FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV,        
   SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG,        
   ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, DE_ERRO,        
   CO_USUA_MODI,FE_USUA_MODI, CO_TABL_ORIG, CO_CLAV_TAOR , CO_TIPO_OPER )        
   Values (@CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,        
   @CNNU_ANNO, @CNNU_MESE,@CSNU_ASTO, @VNNU_SECU, @CDFE_ASTO_CNTB, @CSCO_CNTA_EMPR,        
   @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,@CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU,         
   @CDFE_DOCU_VENC, @CSTI_CAMB,@CSCO_MONE, @CNFA_CAMB, @CNFA_CAMB_DIAR,        
   @CSTI_OPER, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSDE_GLOS,        
   @CSTI_DOCU_REFE, @CSNU_DOCU_REFE,        
   @CDFE_DOCU_REFE, @CSNO_GIRA, Null, Null, @CSCO_ORDE_SERV,        
   @CSSI_MVTO_CNTB, Null, Null, Null,        
   Null, 0 , Null, Null, Null, @VSDE_ERRO, @CSCO_USUA_MODI,        
   @CDFE_USUA_MODI, @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR, @CSCO_TIPO_OPER  )        
           
   Select @VSDE_ERRO = Null        
  End        
          
  If @CNFA_CAMB_DIAR <= 0        
  Begin        
   -- Inserta Error        
   Select @VNNU_SECU = @VNNU_SECU + 1        
   Select @VNNU_CONT = @VNNU_CONT + 1        
   Select @VSDE_ERRO = 'FACTOR CAMBIO DIARIO INCORRECTO'        
   Insert TTERRO_INTE (        
   CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
   NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,        
   CO_AUXI_EMPR,TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,        
   FA_CAMB_DIAR,TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,        
   NU_DOCU_REFE,FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV,        
   SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG,        
   ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, DE_ERRO,        
   CO_USUA_MODI,FE_USUA_MODI, CO_TABL_ORIG, CO_CLAV_TAOR , CO_TIPO_OPER )        
   Values (@CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,        
   @CNNU_ANNO, @CNNU_MESE,@CSNU_ASTO, @VNNU_SECU, @CDFE_ASTO_CNTB, @CSCO_CNTA_EMPR,        
   @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,@CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU,         
   @CDFE_DOCU_VENC, @CSTI_CAMB,@CSCO_MONE, @CNFA_CAMB, @CNFA_CAMB_DIAR,        
   @CSTI_OPER, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSDE_GLOS,        
   @CSTI_DOCU_REFE, @CSNU_DOCU_REFE,@CDFE_DOCU_REFE, @CSNO_GIRA, Null, Null,         
   @CSCO_ORDE_SERV,@CSSI_MVTO_CNTB, Null, Null, Null,Null,        
   0 , Null, Null, Null, @VSDE_ERRO, @CSCO_USUA_MODI,        
   @CDFE_USUA_MODI, @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR , @CSCO_TIPO_OPER )        
           
   Select @VSDE_ERRO = Null        
  End        
        
      
  If @CSCO_MONE = @VSCO_MONE        
  Begin        
   If @CNFA_CAMB > 1        
   Begin        
    -- Inserta Error        
    Select @VNNU_SECU = @VNNU_SECU + 1        
    Select @VNNU_CONT = @VNNU_CONT + 1        
    Select @VSDE_ERRO = 'VERIFIQUE FACTOR CAMBIO'        
    Insert TTERRO_INTE (        
    CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
    NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,        
    CO_AUXI_EMPR,TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,        
    FA_CAMB_DIAR,TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,        
    NU_DOCU_REFE,FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV,        
    SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG,        
    NU_ASTO_ORIG,ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, DE_ERRO,        
    CO_USUA_MODI,FE_USUA_MODI , CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER )        
    Values (@CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,        
    @CNNU_ANNO, @CNNU_MESE,@CSNU_ASTO, @VNNU_SECU, @CDFE_ASTO_CNTB, @CSCO_CNTA_EMPR,        
    @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,@CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, @CDFE_DOCU_VENC, @CSTI_CAMB,        
    @CSCO_MONE, @CNFA_CAMB, @CNFA_CAMB_DIAR,@CSTI_OPER, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSDE_GLOS,        
    @CSTI_DOCU_REFE, @CSNU_DOCU_REFE,@CDFE_DOCU_REFE, @CSNO_GIRA, Null, Null, @CSCO_ORDE_SERV,        
    @CSSI_MVTO_CNTB, Null, Null, Null,        
    Null, 0 , Null, Null, Null, @VSDE_ERRO, @CSCO_USUA_MODI,        
    @CDFE_USUA_MODI, @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR , @CSCO_TIPO_OPER)        
            
    Select @VSDE_ERRO = Null        
   End        
  End        
  -----------------------------------------------------------------        
  -- Importe Movimiento Origen        
  -----------------------------------------------------------------        
  If @CNIM_MVTO_ORIG < 0 AND @CSCO_OPRC_CNTB != '013'        
  Begin        
   -- Inserta Error        
   Select @VNNU_SECU = @VNNU_SECU + 1        
   Select @VNNU_CONT = @VNNU_CONT + 1        
   Select @VSDE_ERRO = 'IMPORTE ORIGEN INCORRECTO'        
   Insert TTERRO_INTE (        
   CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
   NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,        
   CO_AUXI_EMPR,TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,        
   FA_CAMB_DIAR,TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,        
   NU_DOCU_REFE,FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV,        
   SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG,        
   ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, DE_ERRO,        
   CO_USUA_MODI,FE_USUA_MODI, CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER  )        
   Values (@CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,        
   @CNNU_ANNO, @CNNU_MESE,@CSNU_ASTO, @VNNU_SECU, @CDFE_ASTO_CNTB, @CSCO_CNTA_EMPR,        
   @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,@CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, @CDFE_DOCU_VENC, @CSTI_CAMB,        
   @CSCO_MONE, @CNFA_CAMB, @CNFA_CAMB_DIAR,@CSTI_OPER, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSDE_GLOS,        
   @CSTI_DOCU_REFE, @CSNU_DOCU_REFE,@CDFE_DOCU_REFE, @CSNO_GIRA, Null, Null, @CSCO_ORDE_SERV,        
   @CSSI_MVTO_CNTB, Null, Null, Null,        
   Null, 0 , Null, Null, Null, @VSDE_ERRO, @CSCO_USUA_MODI,        
   @CDFE_USUA_MODI, @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR , @CSCO_TIPO_OPER )        
          
   Select @VSDE_ERRO = Null        
  End        
  -----------------------------------------------------------------        
  -- Importe Movimiento Contable        
  -----------------------------------------------------------------        
  If @CNIM_MVTO_CNTB < 0        
  Begin        
   -- Inserta Error        
   Select @VNNU_SECU = @VNNU_SECU + 1        
   Select @VNNU_CONT = @VNNU_CONT + 1        
   Select @VSDE_ERRO = 'IMPORTE CONTABLE INCORRECTO'        
   Insert TTERRO_INTE (        
   CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
   NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,        
   CO_AUXI_EMPR,TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,        
   FA_CAMB_DIAR,TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,        
   NU_DOCU_REFE,FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV,        
   SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG,        
   ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, DE_ERRO,        
   CO_USUA_MODI,FE_USUA_MODI , CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER )       Values (@CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,        
   @CNNU_ANNO, @CNNU_MESE,@CSNU_ASTO, @VNNU_SECU, @CDFE_ASTO_CNTB, @CSCO_CNTA_EMPR,        
   @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,@CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, @CDFE_DOCU_VENC, @CSTI_CAMB,        
   @CSCO_MONE, @CNFA_CAMB, @CNFA_CAMB_DIAR,@CSTI_OPER, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSDE_GLOS,        
   @CSTI_DOCU_REFE, @CSNU_DOCU_REFE,@CDFE_DOCU_REFE, @CSNO_GIRA, Null, Null, @CSCO_ORDE_SERV,        
   @CSSI_MVTO_CNTB, Null, Null, Null,        
   Null, 0 , Null, Null, Null, @VSDE_ERRO, @CSCO_USUA_MODI,        
   @CDFE_USUA_MODI, @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR , @CSCO_TIPO_OPER )        
           
   Select @VSDE_ERRO = Null        
  End        
  -----------------------------------------------------------------        
  -- Estatus Movimiento        
  -----------------------------------------------------------------        
  If @CSSI_MVTO_CNTB Not In ('APR','ELI')        
  Begin     
   -- Inserta Error        
   Select @VNNU_SECU = @VNNU_SECU + 1        
   Select @VNNU_CONT = @VNNU_CONT + 1        
   Select @VSDE_ERRO = 'SITUACIÓN MOVIMIENTO INCORRECTO'        
   Insert TTERRO_INTE (        
   CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
   NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,        
   CO_AUXI_EMPR,TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,        
   FA_CAMB_DIAR,TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,        
   NU_DOCU_REFE,FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV,        
   SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG,        
   ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, DE_ERRO,        
   CO_USUA_MODI,FE_USUA_MODI , CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER )        
   Values ( @CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB,        
   @CSCO_OPRC_CNTB, @CNNU_ANNO, @CNNU_MESE,@CSNU_ASTO, @VNNU_SECU,         
   @CDFE_ASTO_CNTB, @CSCO_CNTA_EMPR,@CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,        
   @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, @CDFE_DOCU_VENC, @CSTI_CAMB,        
   @CSCO_MONE, @CNFA_CAMB, @CNFA_CAMB_DIAR,@CSTI_OPER, @CNIM_MVTO_ORIG,         
   @CNIM_MVTO_CNTB, @CSDE_GLOS,@CSTI_DOCU_REFE, @CSNU_DOCU_REFE,        
   @CDFE_DOCU_REFE, @CSNO_GIRA, Null, Null, @CSCO_ORDE_SERV,        
   @CSSI_MVTO_CNTB, Null, Null, Null,        
   Null, 0 , Null, Null, Null, @VSDE_ERRO, @CSCO_USUA_MODI,        
   @CDFE_USUA_MODI, @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR , @CSCO_TIPO_OPER )        
           
   Select @VSDE_ERRO = Null        
  End        
      
--- david      
    /*      
  If  @VNNU_CONT = 0        
  Begin        
   Insert OFICONT..TXMVTO_INTE (        
   CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,        
   NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,        
   CO_AUXI_EMPR,TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB,        
   FA_CAMB_DIAR,TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,        
   NU_DOCU_REFE,FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV,        
   SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG,        
   ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, CO_USUA_MODI,        
   FE_USUA_MODI, CO_TABL_ORIG, CO_CLAV_TAOR , CO_TIPO_OPER )        
   Values (@CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB, @CSCO_OPRC_CNTB,        
   @CNNU_ANNO, @CNNU_MESE,@CSNU_ASTO, @CNNU_SECU, @CDFE_ASTO_CNTB, @CSCO_CNTA_EMPR,        
   @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,        
   @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, @CDFE_DOCU_VENC, @CSTI_CAMB,        
   @CSCO_MONE, @CNFA_CAMB, @CNFA_CAMB_DIAR,        
   @CSTI_OPER, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSDE_GLOS,        
   @CSTI_DOCU_REFE, @CSNU_DOCU_REFE,        
   @CDFE_DOCU_REFE, @CSNO_GIRA, Null, Null, @CSCO_ORDE_SERV,        
   @CSSI_MVTO_CNTB, Null, Null, Null,        
   Null, 0 , Null, Null, Null, @CSCO_USUA_MODI, @CDFE_USUA_MODI,        
   @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR , @CSCO_TIPO_OPER )        
  End       
    */      
  Select @VNNU_CONT = 0        
          
  Fetch CU_TXMVTO_INTE_I01_1 Into        
  @CSCO_EMPR, @CNNU_CNTB_EMPR, @CSCO_UNID_CNTB,        
  @CNNU_ANNO, @CNNU_MESE, @CSCO_OPRC_CNTB, @CSNU_ASTO,@CNNU_SECU,        
  @CDFE_ASTO_CNTB, @CSCO_CNTA_EMPR, @CSTI_AUXI_EMPR,        
  @CSCO_AUXI_EMPR,@CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU,        
  @CDFE_DOCU_VENC, @CSTI_CAMB, @CSCO_MONE, @CNFA_CAMB,        
  @CNFA_CAMB_DIAR, @CSTI_OPER, @CNIM_MVTO_ORIG,        
  @CNIM_MVTO_CNTB, @CSDE_GLOS,        
  @CSTI_DOCU_REFE, @CSNU_DOCU_REFE, @CDFE_DOCU_REFE, @CSNO_GIRA,        
  @CSCO_ORDE_SERV, @CSSI_MVTO_CNTB,        
  @CSCO_USUA_MODI, @CDFE_USUA_MODI, @CNCO_TABL_ORIG,        
  @CSCO_CLAV_TAOR, @CSCO_TIPO_OPER        
 End        
 Close CU_TXMVTO_INTE_I01_1        
 Deallocate CU_TXMVTO_INTE_I01_1        
         
         
 /*********************************************************************************/        
       
 DELETE TTINTE_CNDE        
 WHERE  CO_EMPR = @ISCO_EMPR        
 AND NU_CNTB_EMPR = 1        
 AND CO_UNID_CNTB = @ISCO_UNID_CNTB        
 AND CO_OPRC_CNTB = @ISCO_OPRC_CNTB        
 AND NU_ANNO = @INNU_ANNO        
 AND NU_MESE = @INNU_MESE        
 AND NU_ASTO = @ISNU_ASTO        
        
        
END         
/*------------------------------- Fin ------------------------------- */   
GO
